import java.util.Scanner;

public class PrefixTwo {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 1.读入数据
        int n = in.nextInt(), m = in.nextInt(), q = in.nextInt();
        // 原数组arr(注意下标是从1开始, 因此二维数组的行和列要多加上1)
        int[][] arr = new int[n + 1][m + 1];
        // 读入arr每个元素的值, 从下标1开始
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= m; j++) {
                arr[i][j] = in.nextInt();
            }
        }

        // 2.预处理dp数组(数组大小和arr一样)
        // 求和注意溢出问题
        long[][] dp = new long[n + 1][m + 1];
        // 填表
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= m; j++) {
                dp[i][j] = dp[i-1][j] + dp[i][j-1] + arr[i][j] - dp[i-1][j-1];
            }
        }

        // 3.使用dp表
        while(q != 0) {
            // 要求的区间和
            int x1 = in.nextInt(), y1 = in.nextInt(), x2 = in.nextInt(), y2 = in.nextInt();
            System.out.println(dp[x2][y2] - dp[x1-1][y2] - dp[x2][y1-1] + dp[x1-1][y1-1]);
            q--;
        }
    }
}
